[INFO] cloning repository https://github.com/IKchen/egui_mind_map
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/IKchen/egui_mind_map" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIKchen%2Fegui_mind_map", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIKchen%2Fegui_mind_map'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 609ee0aab61e63c9a41bf4b5f3000dd7fe4ef504
[INFO] testing IKchen/egui_mind_map against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIKchen%2Fegui_mind_map" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/IKchen/egui_mind_map
[INFO] finished tweaking git repo https://github.com/IKchen/egui_mind_map
[INFO] tweaked toml for git repo https://github.com/IKchen/egui_mind_map written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/IKchen/egui_mind_map on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/IKchen/egui_mind_map already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rand_core v0.9.0-alpha.1
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.94
[INFO] [stderr]   Downloaded wayland-sys v0.31.5
[INFO] [stderr]   Downloaded rand_chacha v0.9.0-alpha.1
[INFO] [stderr]   Downloaded ecolor v0.29.1
[INFO] [stderr]   Downloaded ab_glyph v0.2.25
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.94
[INFO] [stderr]   Downloaded wayland-cursor v0.31.1
[INFO] [stderr]   Downloaded thiserror-impl v1.0.62
[INFO] [stderr]   Downloaded jobserver v0.1.30
[INFO] [stderr]   Downloaded dpi v0.1.1
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.94
[INFO] [stderr]   Downloaded wayland-client v0.31.6
[INFO] [stderr]   Downloaded wayland-backend v0.3.7
[INFO] [stderr]   Downloaded thiserror v1.0.62
[INFO] [stderr]   Downloaded glutin_wgl_sys v0.6.0
[INFO] [stderr]   Downloaded glutin_glx_sys v0.6.0
[INFO] [stderr]   Downloaded glutin_egl_sys v0.7.0
[INFO] [stderr]   Downloaded zerocopy v0.8.0-alpha.6
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.0-alpha.6
[INFO] [stderr]   Downloaded accesskit v0.16.3
[INFO] [stderr]   Downloaded eframe v0.29.1
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.94
[INFO] [stderr]   Downloaded js-sys v0.3.71
[INFO] [stderr]   Downloaded cc v1.0.94
[INFO] [stderr]   Downloaded glutin-winit v0.5.0
[INFO] [stderr]   Downloaded clipboard-win v5.3.1
[INFO] [stderr]   Downloaded epaint v0.29.1
[INFO] [stderr]   Downloaded wayland-protocols v0.32.4
[INFO] [stderr]   Downloaded endi v1.1.0
[INFO] [stderr]   Downloaded syn v2.0.65
[INFO] [stderr]   Downloaded accesskit_unix v0.12.3
[INFO] [stderr]   Downloaded enumflags2 v0.7.9
[INFO] [stderr]   Downloaded immutable-chunkmap v2.0.5
[INFO] [stderr]   Downloaded webbrowser v1.0.1
[INFO] [stderr]   Downloaded accesskit_winit v0.22.0
[INFO] [stderr]   Downloaded egui v0.29.1
[INFO] [stderr]   Downloaded enumflags2_derive v0.7.9
[INFO] [stderr]   Downloaded egui-winit v0.29.1
[INFO] [stderr]   Downloaded accesskit_windows v0.22.0
[INFO] [stderr]   Downloaded windows-implement v0.53.0
[INFO] [stderr]   Downloaded winit v0.30.5
[INFO] [stderr]   Downloaded web-sys v0.3.71
[INFO] [stderr]   Downloaded arboard v3.3.2
[INFO] [stderr]   Downloaded accesskit_consumer v0.24.3
[INFO] [stderr]   Downloaded event-listener v5.3.0
[INFO] [stderr]   Downloaded async-channel v2.2.1
[INFO] [stderr]   Downloaded async-process v2.3.0
[INFO] [stderr]   Downloaded async-io v2.3.2
[INFO] [stderr]   Downloaded async-broadcast v0.7.1
[INFO] [stderr]   Downloaded zbus_xml v4.0.0
[INFO] [stderr]   Downloaded zbus-lockstep v0.4.4
[INFO] [stderr]   Downloaded accesskit_macos v0.17.3
[INFO] [stderr]   Downloaded wgpu-types v22.0.0
[INFO] [stderr]   Downloaded epaint_default_fonts v0.29.1
[INFO] [stderr]   Downloaded xml-rs v0.8.20
[INFO] [stderr]   Downloaded event-listener-strategy v0.5.1
[INFO] [stderr]   Downloaded async-signal v0.2.5
[INFO] [stderr]   Downloaded atspi-proxies v0.6.0
[INFO] [stderr]   Downloaded zbus-lockstep-macros v0.4.4
[INFO] [stderr]   Downloaded egui-wgpu v0.29.1
[INFO] [stderr]   Downloaded wgpu-hal v22.0.0
[INFO] [stderr]   Downloaded bit-set v0.6.0
[INFO] [stderr]   Downloaded bit-vec v0.7.0
[INFO] [stderr]   Downloaded wayland-protocols-wlr v0.3.4
[INFO] [stderr]   Downloaded xdg-home v1.1.0
[INFO] [stderr]   Downloaded wgpu-core v22.1.0
[INFO] [stderr]   Downloaded gpu-allocator v0.26.0
[INFO] [stderr]   Downloaded emath v0.29.1
[INFO] [stderr]   Downloaded document-features v0.2.10
[INFO] [stderr]   Downloaded glutin v0.32.1
[INFO] [stderr]   Downloaded smithay-clipboard v0.7.2
[INFO] [stderr]   Downloaded wgpu v22.1.0
[INFO] [stderr]   Downloaded naga v22.1.0
[INFO] [stderr]   Downloaded wayland-scanner v0.31.5
[INFO] [stderr]   Downloaded atspi-common v0.6.0
[INFO] [stderr]   Downloaded egui_glow v0.29.1
[INFO] [stderr]   Downloaded error-code v3.2.0
[INFO] [stderr]   Downloaded atspi-connection v0.6.0
[INFO] [stderr]   Downloaded gpu-descriptor v0.3.0
[INFO] [stderr]   Downloaded windows-interface v0.53.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.94
[INFO] [stderr]   Downloaded async-executor v1.11.0
[INFO] [stderr]   Downloaded atspi v0.22.0
[INFO] [stderr]   Downloaded xcursor v0.3.5
[INFO] [stderr]   Downloaded rand v0.9.0-alpha.1
[INFO] [stderr]   Downloaded quick-xml v0.36.2
[INFO] [stderr]   Downloaded accesskit_atspi_common v0.9.3
[INFO] [stderr]   Downloaded objc2-encode v4.0.3
[INFO] [stderr]   Downloaded wayland-protocols-plasma v0.3.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4f83825b359e5fc3d3e6f758faa76f7fc94f9a51cd47fc24bc44f2b48e5caad2
[INFO] running `Command { std: "docker" "start" "-a" "4f83825b359e5fc3d3e6f758faa76f7fc94f9a51cd47fc24bc44f2b48e5caad2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4f83825b359e5fc3d3e6f758faa76f7fc94f9a51cd47fc24bc44f2b48e5caad2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4f83825b359e5fc3d3e6f758faa76f7fc94f9a51cd47fc24bc44f2b48e5caad2", kill_on_drop: false }`
[INFO] [stdout] 4f83825b359e5fc3d3e6f758faa76f7fc94f9a51cd47fc24bc44f2b48e5caad2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 083e539818d00bee87356d3c1356c7f6d9ea6307252965fbfd2867e86bf7abfe
[INFO] running `Command { std: "docker" "start" "-a" "083e539818d00bee87356d3c1356c7f6d9ea6307252965fbfd2867e86bf7abfe", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.2.0
[INFO] [stderr]    Compiling libc v0.2.159
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling rustix v0.38.32
[INFO] [stderr]    Compiling linux-raw-sys v0.4.13
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]    Compiling log v0.4.21
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling parking v2.2.0
[INFO] [stderr]    Compiling libloading v0.8.3
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling wayland-sys v0.31.5
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling toml_datetime v0.6.5
[INFO] [stderr]    Compiling syn v2.0.65
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]    Compiling dlib v0.5.2
[INFO] [stderr]    Compiling cc v1.0.94
[INFO] [stderr]    Compiling scoped-tls v1.0.1
[INFO] [stderr]    Compiling fastrand v2.0.2
[INFO] [stderr]    Compiling endi v1.1.0
[INFO] [stderr]    Compiling wayland-client v0.31.6
[INFO] [stderr]    Compiling thiserror v1.0.62
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling concurrent-queue v2.4.0
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling futures-lite v2.3.0
[INFO] [stderr]    Compiling piper v0.2.1
[INFO] [stderr]    Compiling arrayvec v0.7.4
[INFO] [stderr]    Compiling ttf-parser v0.20.0
[INFO] [stderr]    Compiling quick-xml v0.36.2
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling event-listener v5.3.0
[INFO] [stderr]    Compiling event-listener v4.0.3
[INFO] [stderr]    Compiling ordered-stream v0.2.0
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling indexmap v2.2.6
[INFO] [stderr]    Compiling ab_glyph_rasterizer v0.1.8
[INFO] [stderr]    Compiling event-listener-strategy v0.4.0
[INFO] [stderr]    Compiling xml-rs v0.8.20
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling async-lock v3.3.0
[INFO] [stderr]    Compiling event-listener-strategy v0.5.1
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.19.2
[INFO] [stderr]    Compiling xkeysym v0.2.0
[INFO] [stderr]    Compiling cursor-icon v1.1.0
[INFO] [stderr]    Compiling async-channel v2.2.1
[INFO] [stderr]    Compiling async-broadcast v0.7.1
[INFO] [stderr]    Compiling zerocopy v0.7.32
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]    Compiling xcursor v0.3.5
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling blocking v1.6.1
[INFO] [stderr]    Compiling async-executor v1.11.0
[INFO] [stderr]    Compiling strict-num v0.1.1
[INFO] [stderr]    Compiling accesskit v0.16.3
[INFO] [stderr]    Compiling wayland-scanner v0.31.5
[INFO] [stderr]    Compiling arrayref v0.3.7
[INFO] [stderr]    Compiling as-raw-xcb-connection v1.0.1
[INFO] [stderr]    Compiling x11rb-protocol v0.13.0
[INFO] [stderr]    Compiling immutable-chunkmap v2.0.5
[INFO] [stderr]    Compiling async-fs v2.1.2
[INFO] [stderr]    Compiling winit v0.30.5
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]    Compiling toml_edit v0.21.1
[INFO] [stderr]    Compiling raw-window-handle v0.6.0
[INFO] [stderr]    Compiling wayland-backend v0.3.7
[INFO] [stderr]    Compiling glutin_egl_sys v0.7.0
[INFO] [stderr]    Compiling getrandom v0.2.14
[INFO] [stderr]    Compiling xdg-home v1.1.0
[INFO] [stderr]    Compiling memmap2 v0.9.4
[INFO] [stderr]    Compiling accesskit_consumer v0.24.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling glutin_glx_sys v0.6.0
[INFO] [stderr]    Compiling xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling owned_ttf_parser v0.20.0
[INFO] [stderr]    Compiling ab_glyph v0.2.25
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling smol_str v0.2.1
[INFO] [stderr]    Compiling zvariant_utils v2.1.0
[INFO] [stderr]    Compiling zerocopy v0.8.0-alpha.6
[INFO] [stderr]    Compiling epaint_default_fonts v0.29.1
[INFO] [stderr]    Compiling nohash-hasher v0.2.0
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling dpi v0.1.1
[INFO] [stderr]    Compiling miniz_oxide v0.7.2
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling glutin v0.32.1
[INFO] [stderr]    Compiling fdeflate v0.3.4
[INFO] [stderr]    Compiling glutin-winit v0.5.0
[INFO] [stderr]    Compiling home v0.5.9
[INFO] [stderr]    Compiling webbrowser v1.0.1
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling web-time v1.1.0
[INFO] [stderr]    Compiling litrs v0.4.1
[INFO] [stderr]    Compiling document-features v0.2.10
[INFO] [stderr]    Compiling flate2 v1.0.28
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]    Compiling enumflags2_derive v0.7.9
[INFO] [stderr]    Compiling bytemuck_derive v1.6.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.62
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling proc-macro-crate v3.1.0
[INFO] [stderr]    Compiling async-trait v0.1.80
[INFO] [stderr]    Compiling serde_repr v0.1.19
[INFO] [stderr]    Compiling rand_core v0.9.0-alpha.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0-alpha.1
[INFO] [stderr]    Compiling png v0.17.13
[INFO] [stderr]    Compiling rand v0.9.0-alpha.1
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]    Compiling bytemuck v1.15.0
[INFO] [stderr]    Compiling tiny-skia-path v0.11.4
[INFO] [stderr]    Compiling emath v0.29.1
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling image v0.25.1
[INFO] [stderr]    Compiling polling v3.6.0
[INFO] [stderr]    Compiling wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling ecolor v0.29.1
[INFO] [stderr]    Compiling async-io v2.3.2
[INFO] [stderr]    Compiling calloop v0.13.0
[INFO] [stderr]    Compiling epaint v0.29.1
[INFO] [stderr]    Compiling tiny-skia v0.11.4
[INFO] [stderr]    Compiling egui v0.29.1
[INFO] [stderr]    Compiling wayland-protocols v0.32.4
[INFO] [stderr]    Compiling calloop-wayland-source v0.3.0
[INFO] [stderr]    Compiling wayland-cursor v0.31.1
[INFO] [stderr]    Compiling enumflags2 v0.7.9
[INFO] [stderr]    Compiling quick-xml v0.30.0
[INFO] [stderr]    Compiling zvariant v4.2.0
[INFO] [stderr]    Compiling egui_glow v0.29.1
[INFO] [stderr]    Compiling wayland-protocols-wlr v0.3.4
[INFO] [stderr]    Compiling wayland-protocols-plasma v0.3.4
[INFO] [stderr]    Compiling zbus_names v3.0.0
[INFO] [stderr]    Compiling zbus_xml v4.0.0
[INFO] [stderr]    Compiling zbus v4.4.0
[INFO] [stderr]    Compiling zbus-lockstep v0.4.4
[INFO] [stderr]    Compiling x11rb v0.13.0
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.4.4
[INFO] [stderr]    Compiling sctk-adwaita v0.10.1
[INFO] [stderr]    Compiling smithay-clipboard v0.7.2
[INFO] [stderr]    Compiling arboard v3.3.2
[INFO] [stderr]    Compiling atspi-common v0.6.0
[INFO] [stderr]    Compiling atspi-proxies v0.6.0
[INFO] [stderr]    Compiling accesskit_atspi_common v0.9.3
[INFO] [stderr]    Compiling atspi-connection v0.6.0
[INFO] [stderr]    Compiling atspi v0.22.0
[INFO] [stderr]    Compiling accesskit_unix v0.12.3
[INFO] [stderr]    Compiling accesskit_winit v0.22.0
[INFO] [stderr]    Compiling egui-winit v0.29.1
[INFO] [stderr]    Compiling eframe v0.29.1
[INFO] [stderr]    Compiling egui_app v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `canvas`
[INFO] [stdout]  --> src/canvas.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{canvas};
[INFO] [stdout]   |             ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `eframe::App`
[INFO] [stdout]  --> src/canvas.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use eframe::App;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CentralPanel` and `Context`
[INFO] [stdout]  --> src/canvas.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use eframe::egui::{self, CentralPanel, Context};
[INFO] [stdout]   |                          ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color32`, `Pos2`, `Rect`, and `vec2`
[INFO] [stdout]  --> src/canvas.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use eframe::epaint::{Color32, Pos2, Rect, vec2};
[INFO] [stdout]   |                      ^^^^^^^  ^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Label`
[INFO] [stdout]  --> src/node.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use egui::{Align2, FontId, Label};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GraphState`
[INFO] [stdout]  --> src/node.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::node_graph::{GraphState,NodeId};
[INFO] [stdout]   |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CentralPanel` and `Context`
[INFO] [stdout]  --> src/node.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use eframe::egui::{self, CentralPanel, Context};
[INFO] [stdout]   |                          ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CircleShape`, `FontFamily`, and `vec2`
[INFO] [stdout]  --> src/node.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use eframe::epaint::{CircleShape, Color32, FontFamily, Pos2, Rect, vec2};
[INFO] [stdout]   |                      ^^^^^^^^^^^           ^^^^^^^^^^              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Area`, `Button`, `FontDefinitions`, `LayerId`, `Order`, `Response`, `Rounding`, `Stroke`, and `Widget`
[INFO] [stdout]  --> src/node.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use egui::{Area, Button, FontDefinitions, Id, Key, LayerId, Order, Response, Rounding, Sense, Stroke, Style, Ui, Vec2, Widget};
[INFO] [stdout]   |            ^^^^  ^^^^^^  ^^^^^^^^^^^^^^^           ^^^^^^^  ^^^^^  ^^^^^^^^  ^^^^^^^^         ^^^^^^                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random`
[INFO] [stdout]  --> src/node.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rand::{random, Rng};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::prelude::*`
[INFO] [stdout]  --> src/node.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pos2` and `vec2`
[INFO] [stdout]  --> src/pan_zoom.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use eframe::emath::{Pos2, TSTransform, vec2};
[INFO] [stdout]   |                     ^^^^               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]  --> src/node_graph.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{fmt, thread};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rounding`
[INFO] [stdout]  --> src/node_graph.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use eframe::epaint::{Pos2, pos2, Rounding};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Area`, `Id`, `Shape`, and `Style`
[INFO] [stdout]  --> src/node_graph.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use egui::{Area, Color32, Id, Shape, Stroke, Style, Ui};
[INFO] [stdout]   |            ^^^^           ^^  ^^^^^          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::println`
[INFO] [stdout]  --> src/traits.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::println;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rect` and `Vec2`
[INFO] [stdout]  --> src/traits.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use eframe::emath::{Rect, Vec2};
[INFO] [stdout]   |                     ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color32`, `Rounding`, and `Stroke`
[INFO] [stdout]  --> src/traits.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use eframe::epaint::{Color32, Rounding, Stroke};
[INFO] [stdout]   |                      ^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::spawn`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread::spawn;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Layout`, `Order`, `Painter`, `TopBottomPanel`, and `Widget`
[INFO] [stdout]   --> src/main.rs:11:24
[INFO] [stdout]    |
[INFO] [stdout] 11 | use egui::{Align2, Id, Layout, menu, Order, Painter, Rounding, Sense, TextStyle, TopBottomPanel, Widget, Window, FontData, FontFamily};
[INFO] [stdout]    |                        ^^^^^^        ^^^^^  ^^^^^^^                              ^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rect` and `Stroke`
[INFO] [stdout]   --> src/main.rs:54:28
[INFO] [stdout]    |
[INFO] [stdout] 54 | use eframe::epaint::{Pos2, Rect, Stroke, vec2};
[INFO] [stdout]    |                            ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `egui::epaint::text::layout`
[INFO] [stdout]   --> src/main.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | use egui::epaint::text::layout;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Node`
[INFO] [stdout]   --> src/main.rs:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 | use crate::node::{ButtonState, Node, NodeState};
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/node_graph.rs:95:50
[INFO] [stdout]    |
[INFO] [stdout] 95 |                         let stroke = Stroke::new(2.0, Color32::from_rgb(255, 0, 0));
[INFO] [stdout]    |                                                  ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `View`
[INFO] [stdout]   --> src/main.rs:61:33
[INFO] [stdout]    |
[INFO] [stdout] 61 | use crate::traits::{NodeGraphs, View};
[INFO] [stdout]    |                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `random_number`
[INFO] [stdout]   --> src/node.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let random_number: u8 = rng.gen_range(0..=255);
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_number`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/node.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let mut transformed_node_pos = pan_zoom.transform* self.node_pos;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]    --> src/node_graph.rs:192:61
[INFO] [stdout]     |
[INFO] [stdout] 192 |              graph_response.nodes_response.insert_with_key(|mut k| {
[INFO] [stdout]     |                                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]    --> src/node_graph.rs:193:21
[INFO] [stdout]     |
[INFO] [stdout] 193 |                     k = node_id;
[INFO] [stdout]     |                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]    --> src/node_graph.rs:213:66
[INFO] [stdout]     |
[INFO] [stdout] 213 |                 graph_response.buttons_response.insert_with_key(|mut k| {
[INFO] [stdout]     |                                                                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]    --> src/node_graph.rs:214:21
[INFO] [stdout]     |
[INFO] [stdout] 214 |                     k = id;
[INFO] [stdout]     |                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/node_graph.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let mut node_pos=self.nodes[father_node_id].node_pos+pos2(300.0,0.0).to_vec2();//默认往右平移300，后面需要算法计算位置
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> src/node_graph.rs:257:32
[INFO] [stdout]     |
[INFO] [stdout] 257 |     fn select_node(& mut self, node_id: NodeId) {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> src/node_graph.rs:260:30
[INFO] [stdout]     |
[INFO] [stdout] 260 |     fn edite_node(&mut self, node_id: NodeId) {
[INFO] [stdout]     |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> src/node_graph.rs:263:31
[INFO] [stdout]     |
[INFO] [stdout] 263 |     fn delete_node(&mut self, node_id: NodeId) {
[INFO] [stdout]     |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/traits.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,graph_state: &mut GraphState)-> GraphResponse{
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan_zoom`
[INFO] [stdout]   --> src/traits.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,graph_state: &mut GraphState)-> GraphResponse{
[INFO] [stdout]    |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph_state`
[INFO] [stdout]   --> src/traits.rs:12:60
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,graph_state: &mut GraphState)-> GraphResponse{
[INFO] [stdout]    |                                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_graph_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `father_node_id`
[INFO] [stdout]   --> src/traits.rs:15:45
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn add_node_with_father_node(&mut self, father_node_id:  NodeId)->NodeId{
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_father_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos2`
[INFO] [stdout]   --> src/traits.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn add_node_with_position(&mut self, pos2: Pos2)-> NodeId{
[INFO] [stdout]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_pos2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> src/traits.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn select_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> src/traits.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn edite_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> src/traits.rs:23:30
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn delete_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/traits.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,node_state:&mut NodeState)->NodeResponse{
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan_zoom`
[INFO] [stdout]   --> src/traits.rs:28:37
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,node_state:&mut NodeState)->NodeResponse{
[INFO] [stdout]    |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_state`
[INFO] [stdout]   --> src/traits.rs:28:60
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,node_state:&mut NodeState)->NodeResponse{
[INFO] [stdout]    |                                                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan_zoom`
[INFO] [stdout]   --> src/traits.rs:32:35
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn ui(& mut self, ui: &mut Ui,pan_zoom: &mut PanZoom) ->Response{
[INFO] [stdout]    |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/traits.rs:37:32
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn draw_button(& mut self, ui: &mut Ui, pan_zoom: &mut PanZoom, button_state:&mut ButtonState)->ButtonResponse{
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan_zoom`
[INFO] [stdout]   --> src/traits.rs:37:45
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn draw_button(& mut self, ui: &mut Ui, pan_zoom: &mut PanZoom, button_state:&mut ButtonState)->ButtonResponse{
[INFO] [stdout]    |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button_state`
[INFO] [stdout]   --> src/traits.rs:37:69
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn draw_button(& mut self, ui: &mut Ui, pan_zoom: &mut PanZoom, button_state:&mut ButtonState)->ButtonResponse{
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_button_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]   --> src/handlers.rs:60:57
[INFO] [stdout]    |
[INFO] [stdout] 60 |         graph_state.graph_button_state.insert_with_key(|mut k| {
[INFO] [stdout]    |                                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]   --> src/handlers.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |             k = new_node;
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]   --> src/handlers.rs:56:31
[INFO] [stdout]    |
[INFO] [stdout] 56 |             .insert_with_key(|mut k| {
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]   --> src/handlers.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |             k = new_node;
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nodeid`
[INFO] [stdout]   --> src/handlers.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 |     for (nodeid,response) in nodes_response{
[INFO] [stdout]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_nodeid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> src/handlers.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 |     for (node_id, response) in buttons_response {
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/main.rs:33:75
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn circle_interactable(ui: &mut egui::Ui, center: &mut Pos2, radius: f32, id: Id) -> Response {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let mut response = ui.interact(rect, id, egui::Sense::click_and_drag());
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan_delta`
[INFO] [stdout]    --> src/main.rs:108:21
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 let pan_delta = ui.ctx().input(|i| i.smooth_scroll_delta);
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:134:24
[INFO] [stdout]     |
[INFO] [stdout] 134 |                    let mut node_id= self.node_graph.add_node_with_position(pos);
[INFO] [stdout]     |                        ----^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:149:25
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     let mut node_id=self.node_graph.add_node_with_father_node(id);
[INFO] [stdout]     |                         ----^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:155:74
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     self.graph_state.graph_button_state.insert_with_key(|mut k| {
[INFO] [stdout]     |                                                                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]    --> src/main.rs:156:25
[INFO] [stdout]     |
[INFO] [stdout] 156 |                         k = node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `node_id` is never read
[INFO] [stdout]    --> src/main.rs:152:25
[INFO] [stdout]     |
[INFO] [stdout] 152 |                         node_id=node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:140:74
[INFO] [stdout]     |
[INFO] [stdout] 140 |                     self.graph_state.graph_button_state.insert_with_key(|mut k| {
[INFO] [stdout]     |                                                                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]    --> src/main.rs:141:25
[INFO] [stdout]     |
[INFO] [stdout] 141 |                         k = node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `node_id` is never read
[INFO] [stdout]    --> src/main.rs:137:25
[INFO] [stdout]     |
[INFO] [stdout] 137 |                         node_id=node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `central_response`
[INFO] [stdout]    --> src/main.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let central_response=CentralPanel::default().show(ctx, |ui| {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_central_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let mut myapp=MyApp::default();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of variable of type `node_graph::NodeId` to itself
[INFO] [stdout]    --> src/main.rs:137:25
[INFO] [stdout]     |
[INFO] [stdout] 137 |                         node_id=node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of variable of type `node_graph::NodeId` to itself
[INFO] [stdout]    --> src/main.rs:152:25
[INFO] [stdout]     |
[INFO] [stdout] 152 |                         node_id=node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_button` is never used
[INFO] [stdout]   --> src/main.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn custom_button(ui: &mut Ui, text: &str) -> Response {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circle_interactable` is never used
[INFO] [stdout]   --> src/main.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn circle_interactable(ui: &mut egui::Ui, center: &mut Pos2, radius: f32, id: Id) -> Response {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `canvas`, `circle_center`, and `graph_response` are never read
[INFO] [stdout]   --> src/main.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct MyApp{
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 64 |     canvas: Canvas,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 65 |     node_graph: NodeGraph,
[INFO] [stdout] 66 |     circle_center:Pos2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     graph_response: GraphResponse,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `transform` is never read
[INFO] [stdout]   --> src/canvas.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Canvas{
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 12 |    pub transform: TSTransform,
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvisibleNode` and `VisibleNode` are never constructed
[INFO] [stdout]   --> src/node.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum NodeResponse{
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 28 |     InvisibleNode(NodeId),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 29 |     VisibleNode(NodeId), 
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `transform` is never read
[INFO] [stdout]   --> src/node.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Node{
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 40 |     pub node_id:NodeId,
[INFO] [stdout] 41 |     pub transform: TSTransform,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_color` and `set_pos` are never used
[INFO] [stdout]   --> src/node.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl  Node{
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 70 |     //设置节点颜色
[INFO] [stdout] 71 |     pub fn set_color(&mut self){
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn set_pos(&mut self,pos:Pos2){
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/pan_zoom.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl PanZoom{
[INFO] [stdout]   | ------------ associated function in this implementation
[INFO] [stdout] 8 |     pub fn new() -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_key` is never read
[INFO] [stdout]   --> src/node_graph.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct NodeGraph {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 35 |     pub nodes: SlotMap<NodeId, Node>,
[INFO] [stdout] 36 |     pub last_key:Option<NodeId>
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `select_node`, `edite_node`, and `delete_node` are never used
[INFO] [stdout]   --> src/traits.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait NodeGraphs {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn select_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 22 |     fn edite_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 23 |     fn delete_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ui` is never used
[INFO] [stdout]   --> src/traits.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub trait View {
[INFO] [stdout]    |           ---- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn ui(& mut self, ui: &mut Ui,pan_zoom: &mut PanZoom) ->Response{
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |             handle_graph_response(&mut self.node_graph,&mut self.graph_state,graph_response);//处理response
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 201 |             let _ = handle_graph_response(&mut self.node_graph,&mut self.graph_state,graph_response);//处理response
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 11s
[INFO] running `Command { std: "docker" "inspect" "083e539818d00bee87356d3c1356c7f6d9ea6307252965fbfd2867e86bf7abfe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "083e539818d00bee87356d3c1356c7f6d9ea6307252965fbfd2867e86bf7abfe", kill_on_drop: false }`
[INFO] [stdout] 083e539818d00bee87356d3c1356c7f6d9ea6307252965fbfd2867e86bf7abfe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 68e90edda3ea8ca12a92b3aa510d0dd0d452666dd3bb533d268700d165b2bdf5
[INFO] running `Command { std: "docker" "start" "-a" "68e90edda3ea8ca12a92b3aa510d0dd0d452666dd3bb533d268700d165b2bdf5", kill_on_drop: false }`
[INFO] [stderr]    Compiling egui_app v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `canvas`
[INFO] [stdout]  --> src/canvas.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{canvas};
[INFO] [stdout]   |             ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `eframe::App`
[INFO] [stdout]  --> src/canvas.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use eframe::App;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CentralPanel` and `Context`
[INFO] [stdout]  --> src/canvas.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use eframe::egui::{self, CentralPanel, Context};
[INFO] [stdout]   |                          ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color32`, `Pos2`, `Rect`, and `vec2`
[INFO] [stdout]  --> src/canvas.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use eframe::epaint::{Color32, Pos2, Rect, vec2};
[INFO] [stdout]   |                      ^^^^^^^  ^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Label`
[INFO] [stdout]  --> src/node.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use egui::{Align2, FontId, Label};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GraphState`
[INFO] [stdout]  --> src/node.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::node_graph::{GraphState,NodeId};
[INFO] [stdout]   |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CentralPanel` and `Context`
[INFO] [stdout]  --> src/node.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use eframe::egui::{self, CentralPanel, Context};
[INFO] [stdout]   |                          ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CircleShape`, `FontFamily`, and `vec2`
[INFO] [stdout]  --> src/node.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use eframe::epaint::{CircleShape, Color32, FontFamily, Pos2, Rect, vec2};
[INFO] [stdout]   |                      ^^^^^^^^^^^           ^^^^^^^^^^              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Area`, `Button`, `FontDefinitions`, `LayerId`, `Order`, `Response`, `Rounding`, `Stroke`, and `Widget`
[INFO] [stdout]  --> src/node.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use egui::{Area, Button, FontDefinitions, Id, Key, LayerId, Order, Response, Rounding, Sense, Stroke, Style, Ui, Vec2, Widget};
[INFO] [stdout]   |            ^^^^  ^^^^^^  ^^^^^^^^^^^^^^^           ^^^^^^^  ^^^^^  ^^^^^^^^  ^^^^^^^^         ^^^^^^                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random`
[INFO] [stdout]  --> src/node.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rand::{random, Rng};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::prelude::*`
[INFO] [stdout]  --> src/node.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pos2` and `vec2`
[INFO] [stdout]  --> src/pan_zoom.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use eframe::emath::{Pos2, TSTransform, vec2};
[INFO] [stdout]   |                     ^^^^               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]  --> src/node_graph.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{fmt, thread};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rounding`
[INFO] [stdout]  --> src/node_graph.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use eframe::epaint::{Pos2, pos2, Rounding};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Area`, `Id`, `Shape`, and `Style`
[INFO] [stdout]  --> src/node_graph.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use egui::{Area, Color32, Id, Shape, Stroke, Style, Ui};
[INFO] [stdout]   |            ^^^^           ^^  ^^^^^          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::println`
[INFO] [stdout]  --> src/traits.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::println;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rect` and `Vec2`
[INFO] [stdout]  --> src/traits.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use eframe::emath::{Rect, Vec2};
[INFO] [stdout]   |                     ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color32`, `Rounding`, and `Stroke`
[INFO] [stdout]  --> src/traits.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use eframe::epaint::{Color32, Rounding, Stroke};
[INFO] [stdout]   |                      ^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::spawn`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread::spawn;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Layout`, `Order`, `Painter`, `TopBottomPanel`, and `Widget`
[INFO] [stdout]   --> src/main.rs:11:24
[INFO] [stdout]    |
[INFO] [stdout] 11 | use egui::{Align2, Id, Layout, menu, Order, Painter, Rounding, Sense, TextStyle, TopBottomPanel, Widget, Window, FontData, FontFamily};
[INFO] [stdout]    |                        ^^^^^^        ^^^^^  ^^^^^^^                              ^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rect` and `Stroke`
[INFO] [stdout]   --> src/main.rs:54:28
[INFO] [stdout]    |
[INFO] [stdout] 54 | use eframe::epaint::{Pos2, Rect, Stroke, vec2};
[INFO] [stdout]    |                            ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `egui::epaint::text::layout`
[INFO] [stdout]   --> src/main.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | use egui::epaint::text::layout;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Node`
[INFO] [stdout]   --> src/main.rs:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 | use crate::node::{ButtonState, Node, NodeState};
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/node_graph.rs:95:50
[INFO] [stdout]    |
[INFO] [stdout] 95 |                         let stroke = Stroke::new(2.0, Color32::from_rgb(255, 0, 0));
[INFO] [stdout]    |                                                  ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `View`
[INFO] [stdout]   --> src/main.rs:61:33
[INFO] [stdout]    |
[INFO] [stdout] 61 | use crate::traits::{NodeGraphs, View};
[INFO] [stdout]    |                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `random_number`
[INFO] [stdout]   --> src/node.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let random_number: u8 = rng.gen_range(0..=255);
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_number`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/node.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let mut transformed_node_pos = pan_zoom.transform* self.node_pos;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]    --> src/node_graph.rs:192:61
[INFO] [stdout]     |
[INFO] [stdout] 192 |              graph_response.nodes_response.insert_with_key(|mut k| {
[INFO] [stdout]     |                                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]    --> src/node_graph.rs:193:21
[INFO] [stdout]     |
[INFO] [stdout] 193 |                     k = node_id;
[INFO] [stdout]     |                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]    --> src/node_graph.rs:213:66
[INFO] [stdout]     |
[INFO] [stdout] 213 |                 graph_response.buttons_response.insert_with_key(|mut k| {
[INFO] [stdout]     |                                                                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]    --> src/node_graph.rs:214:21
[INFO] [stdout]     |
[INFO] [stdout] 214 |                     k = id;
[INFO] [stdout]     |                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/node_graph.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let mut node_pos=self.nodes[father_node_id].node_pos+pos2(300.0,0.0).to_vec2();//默认往右平移300，后面需要算法计算位置
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> src/node_graph.rs:257:32
[INFO] [stdout]     |
[INFO] [stdout] 257 |     fn select_node(& mut self, node_id: NodeId) {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> src/node_graph.rs:260:30
[INFO] [stdout]     |
[INFO] [stdout] 260 |     fn edite_node(&mut self, node_id: NodeId) {
[INFO] [stdout]     |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> src/node_graph.rs:263:31
[INFO] [stdout]     |
[INFO] [stdout] 263 |     fn delete_node(&mut self, node_id: NodeId) {
[INFO] [stdout]     |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/traits.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,graph_state: &mut GraphState)-> GraphResponse{
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan_zoom`
[INFO] [stdout]   --> src/traits.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,graph_state: &mut GraphState)-> GraphResponse{
[INFO] [stdout]    |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph_state`
[INFO] [stdout]   --> src/traits.rs:12:60
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,graph_state: &mut GraphState)-> GraphResponse{
[INFO] [stdout]    |                                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_graph_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `father_node_id`
[INFO] [stdout]   --> src/traits.rs:15:45
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn add_node_with_father_node(&mut self, father_node_id:  NodeId)->NodeId{
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_father_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos2`
[INFO] [stdout]   --> src/traits.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn add_node_with_position(&mut self, pos2: Pos2)-> NodeId{
[INFO] [stdout]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_pos2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> src/traits.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn select_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> src/traits.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn edite_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> src/traits.rs:23:30
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn delete_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/traits.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,node_state:&mut NodeState)->NodeResponse{
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan_zoom`
[INFO] [stdout]   --> src/traits.rs:28:37
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,node_state:&mut NodeState)->NodeResponse{
[INFO] [stdout]    |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_state`
[INFO] [stdout]   --> src/traits.rs:28:60
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,node_state:&mut NodeState)->NodeResponse{
[INFO] [stdout]    |                                                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan_zoom`
[INFO] [stdout]   --> src/traits.rs:32:35
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn ui(& mut self, ui: &mut Ui,pan_zoom: &mut PanZoom) ->Response{
[INFO] [stdout]    |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/traits.rs:37:32
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn draw_button(& mut self, ui: &mut Ui, pan_zoom: &mut PanZoom, button_state:&mut ButtonState)->ButtonResponse{
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan_zoom`
[INFO] [stdout]   --> src/traits.rs:37:45
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn draw_button(& mut self, ui: &mut Ui, pan_zoom: &mut PanZoom, button_state:&mut ButtonState)->ButtonResponse{
[INFO] [stdout]    |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button_state`
[INFO] [stdout]   --> src/traits.rs:37:69
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn draw_button(& mut self, ui: &mut Ui, pan_zoom: &mut PanZoom, button_state:&mut ButtonState)->ButtonResponse{
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_button_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]   --> src/handlers.rs:60:57
[INFO] [stdout]    |
[INFO] [stdout] 60 |         graph_state.graph_button_state.insert_with_key(|mut k| {
[INFO] [stdout]    |                                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]   --> src/handlers.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |             k = new_node;
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]   --> src/handlers.rs:56:31
[INFO] [stdout]    |
[INFO] [stdout] 56 |             .insert_with_key(|mut k| {
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]   --> src/handlers.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |             k = new_node;
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nodeid`
[INFO] [stdout]   --> src/handlers.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 |     for (nodeid,response) in nodes_response{
[INFO] [stdout]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_nodeid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> src/handlers.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 |     for (node_id, response) in buttons_response {
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/main.rs:33:75
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn circle_interactable(ui: &mut egui::Ui, center: &mut Pos2, radius: f32, id: Id) -> Response {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let mut response = ui.interact(rect, id, egui::Sense::click_and_drag());
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pan_delta`
[INFO] [stdout]    --> src/main.rs:108:21
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 let pan_delta = ui.ctx().input(|i| i.smooth_scroll_delta);
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:134:24
[INFO] [stdout]     |
[INFO] [stdout] 134 |                    let mut node_id= self.node_graph.add_node_with_position(pos);
[INFO] [stdout]     |                        ----^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:149:25
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     let mut node_id=self.node_graph.add_node_with_father_node(id);
[INFO] [stdout]     |                         ----^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:155:74
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     self.graph_state.graph_button_state.insert_with_key(|mut k| {
[INFO] [stdout]     |                                                                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]    --> src/main.rs:156:25
[INFO] [stdout]     |
[INFO] [stdout] 156 |                         k = node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `node_id` is never read
[INFO] [stdout]    --> src/main.rs:152:25
[INFO] [stdout]     |
[INFO] [stdout] 152 |                         node_id=node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `k` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:140:74
[INFO] [stdout]     |
[INFO] [stdout] 140 |                     self.graph_state.graph_button_state.insert_with_key(|mut k| {
[INFO] [stdout]     |                                                                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_k` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `k` is never read
[INFO] [stdout]    --> src/main.rs:141:25
[INFO] [stdout]     |
[INFO] [stdout] 141 |                         k = node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `node_id` is never read
[INFO] [stdout]    --> src/main.rs:137:25
[INFO] [stdout]     |
[INFO] [stdout] 137 |                         node_id=node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `central_response`
[INFO] [stdout]    --> src/main.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let central_response=CentralPanel::default().show(ctx, |ui| {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_central_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let mut myapp=MyApp::default();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of variable of type `node_graph::NodeId` to itself
[INFO] [stdout]    --> src/main.rs:137:25
[INFO] [stdout]     |
[INFO] [stdout] 137 |                         node_id=node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of variable of type `node_graph::NodeId` to itself
[INFO] [stdout]    --> src/main.rs:152:25
[INFO] [stdout]     |
[INFO] [stdout] 152 |                         node_id=node_id;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_button` is never used
[INFO] [stdout]   --> src/main.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn custom_button(ui: &mut Ui, text: &str) -> Response {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circle_interactable` is never used
[INFO] [stdout]   --> src/main.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn circle_interactable(ui: &mut egui::Ui, center: &mut Pos2, radius: f32, id: Id) -> Response {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `canvas`, `circle_center`, and `graph_response` are never read
[INFO] [stdout]   --> src/main.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct MyApp{
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 64 |     canvas: Canvas,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 65 |     node_graph: NodeGraph,
[INFO] [stdout] 66 |     circle_center:Pos2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     graph_response: GraphResponse,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `transform` is never read
[INFO] [stdout]   --> src/canvas.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Canvas{
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 12 |    pub transform: TSTransform,
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvisibleNode` and `VisibleNode` are never constructed
[INFO] [stdout]   --> src/node.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum NodeResponse{
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 28 |     InvisibleNode(NodeId),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 29 |     VisibleNode(NodeId), 
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `transform` is never read
[INFO] [stdout]   --> src/node.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Node{
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 40 |     pub node_id:NodeId,
[INFO] [stdout] 41 |     pub transform: TSTransform,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_color` and `set_pos` are never used
[INFO] [stdout]   --> src/node.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl  Node{
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 70 |     //设置节点颜色
[INFO] [stdout] 71 |     pub fn set_color(&mut self){
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn set_pos(&mut self,pos:Pos2){
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/pan_zoom.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl PanZoom{
[INFO] [stdout]   | ------------ associated function in this implementation
[INFO] [stdout] 8 |     pub fn new() -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_key` is never read
[INFO] [stdout]   --> src/node_graph.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct NodeGraph {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 35 |     pub nodes: SlotMap<NodeId, Node>,
[INFO] [stdout] 36 |     pub last_key:Option<NodeId>
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `select_node`, `edite_node`, and `delete_node` are never used
[INFO] [stdout]   --> src/traits.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait NodeGraphs {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn select_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 22 |     fn edite_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 23 |     fn delete_node(&mut self,node_id:NodeId){}
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ui` is never used
[INFO] [stdout]   --> src/traits.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub trait View {
[INFO] [stdout]    |           ---- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn ui(& mut self, ui: &mut Ui,pan_zoom: &mut PanZoom) ->Response{
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |             handle_graph_response(&mut self.node_graph,&mut self.graph_state,graph_response);//处理response
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 201 |             let _ = handle_graph_response(&mut self.node_graph,&mut self.graph_state,graph_response);//处理response
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.19s
[INFO] running `Command { std: "docker" "inspect" "68e90edda3ea8ca12a92b3aa510d0dd0d452666dd3bb533d268700d165b2bdf5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "68e90edda3ea8ca12a92b3aa510d0dd0d452666dd3bb533d268700d165b2bdf5", kill_on_drop: false }`
[INFO] [stdout] 68e90edda3ea8ca12a92b3aa510d0dd0d452666dd3bb533d268700d165b2bdf5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ee51208f33df1f6922b622ec7b3d7aae246e961d3e7ea38b5f1f331f4d0ba3eb
[INFO] running `Command { std: "docker" "start" "-a" "ee51208f33df1f6922b622ec7b3d7aae246e961d3e7ea38b5f1f331f4d0ba3eb", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `canvas`
[INFO] [stderr]  --> src/canvas.rs:1:13
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::{canvas};
[INFO] [stderr]   |             ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `eframe::App`
[INFO] [stderr]  --> src/canvas.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use eframe::App;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CentralPanel` and `Context`
[INFO] [stderr]  --> src/canvas.rs:3:26
[INFO] [stderr]   |
[INFO] [stderr] 3 | use eframe::egui::{self, CentralPanel, Context};
[INFO] [stderr]   |                          ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Color32`, `Pos2`, `Rect`, and `vec2`
[INFO] [stderr]  --> src/canvas.rs:5:22
[INFO] [stderr]   |
[INFO] [stderr] 5 | use eframe::epaint::{Color32, Pos2, Rect, vec2};
[INFO] [stderr]   |                      ^^^^^^^  ^^^^  ^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Label`
[INFO] [stderr]  --> src/node.rs:1:28
[INFO] [stderr]   |
[INFO] [stderr] 1 | use egui::{Align2, FontId, Label};
[INFO] [stderr]   |                            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `GraphState`
[INFO] [stderr]  --> src/node.rs:2:25
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::node_graph::{GraphState,NodeId};
[INFO] [stderr]   |                         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CentralPanel` and `Context`
[INFO] [stderr]  --> src/node.rs:3:26
[INFO] [stderr]   |
[INFO] [stderr] 3 | use eframe::egui::{self, CentralPanel, Context};
[INFO] [stderr]   |                          ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CircleShape`, `FontFamily`, and `vec2`
[INFO] [stderr]  --> src/node.rs:5:22
[INFO] [stderr]   |
[INFO] [stderr] 5 | use eframe::epaint::{CircleShape, Color32, FontFamily, Pos2, Rect, vec2};
[INFO] [stderr]   |                      ^^^^^^^^^^^           ^^^^^^^^^^              ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Area`, `Button`, `FontDefinitions`, `LayerId`, `Order`, `Response`, `Rounding`, `Stroke`, and `Widget`
[INFO] [stderr]  --> src/node.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | use egui::{Area, Button, FontDefinitions, Id, Key, LayerId, Order, Response, Rounding, Sense, Stroke, Style, Ui, Vec2, Widget};
[INFO] [stderr]   |            ^^^^  ^^^^^^  ^^^^^^^^^^^^^^^           ^^^^^^^  ^^^^^  ^^^^^^^^  ^^^^^^^^         ^^^^^^                   ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `random`
[INFO] [stderr]  --> src/node.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | use rand::{random, Rng};
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rand::prelude::*`
[INFO] [stderr]  --> src/node.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use rand::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Pos2` and `vec2`
[INFO] [stderr]  --> src/pan_zoom.rs:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | use eframe::emath::{Pos2, TSTransform, vec2};
[INFO] [stderr]   |                     ^^^^               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `thread`
[INFO] [stderr]  --> src/node_graph.rs:3:16
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::{fmt, thread};
[INFO] [stderr]   |                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Rounding`
[INFO] [stderr]  --> src/node_graph.rs:5:34
[INFO] [stderr]   |
[INFO] [stderr] 5 | use eframe::epaint::{Pos2, pos2, Rounding};
[INFO] [stderr]   |                                  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Area`, `Id`, `Shape`, and `Style`
[INFO] [stderr]  --> src/node_graph.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | use egui::{Area, Color32, Id, Shape, Stroke, Style, Ui};
[INFO] [stderr]   |            ^^^^           ^^  ^^^^^          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::println`
[INFO] [stderr]  --> src/traits.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::println;
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Rect` and `Vec2`
[INFO] [stderr]  --> src/traits.rs:2:21
[INFO] [stderr]   |
[INFO] [stderr] 2 | use eframe::emath::{Rect, Vec2};
[INFO] [stderr]   |                     ^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Color32`, `Rounding`, and `Stroke`
[INFO] [stderr]  --> src/traits.rs:3:22
[INFO] [stderr]   |
[INFO] [stderr] 3 | use eframe::epaint::{Color32, Rounding, Stroke};
[INFO] [stderr]   |                      ^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/main.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread::spawn`
[INFO] [stderr]  --> src/main.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::thread::spawn;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Layout`, `Order`, `Painter`, `TopBottomPanel`, and `Widget`
[INFO] [stderr]   --> src/main.rs:11:24
[INFO] [stderr]    |
[INFO] [stderr] 11 | use egui::{Align2, Id, Layout, menu, Order, Painter, Rounding, Sense, TextStyle, TopBottomPanel, Widget, Window, FontData, FontFamily};
[INFO] [stderr]    |                        ^^^^^^        ^^^^^  ^^^^^^^                              ^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Rect` and `Stroke`
[INFO] [stderr]   --> src/main.rs:54:28
[INFO] [stderr]    |
[INFO] [stderr] 54 | use eframe::epaint::{Pos2, Rect, Stroke, vec2};
[INFO] [stderr]    |                            ^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `egui::epaint::text::layout`
[INFO] [stderr]   --> src/main.rs:56:5
[INFO] [stderr]    |
[INFO] [stderr] 56 | use egui::epaint::text::layout;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Node`
[INFO] [stderr]   --> src/main.rs:59:32
[INFO] [stderr]    |
[INFO] [stderr] 59 | use crate::node::{ButtonState, Node, NodeState};
[INFO] [stderr]    |                                ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]   --> src/node_graph.rs:95:50
[INFO] [stderr]    |
[INFO] [stderr] 95 |                         let stroke = Stroke::new(2.0, Color32::from_rgb(255, 0, 0));
[INFO] [stderr]    |                                                  ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `View`
[INFO] [stderr]   --> src/main.rs:61:33
[INFO] [stderr]    |
[INFO] [stderr] 61 | use crate::traits::{NodeGraphs, View};
[INFO] [stderr]    |                                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `random_number`
[INFO] [stderr]   --> src/node.rs:54:13
[INFO] [stderr]    |
[INFO] [stderr] 54 |         let random_number: u8 = rng.gen_range(0..=255);
[INFO] [stderr]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_number`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/node.rs:190:13
[INFO] [stderr]     |
[INFO] [stderr] 190 |         let mut transformed_node_pos = pan_zoom.transform* self.node_pos;
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `k` is assigned to, but never used
[INFO] [stderr]    --> src/node_graph.rs:192:61
[INFO] [stderr]     |
[INFO] [stderr] 192 |              graph_response.nodes_response.insert_with_key(|mut k| {
[INFO] [stderr]     |                                                             ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_k` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `k` is never read
[INFO] [stderr]    --> src/node_graph.rs:193:21
[INFO] [stderr]     |
[INFO] [stderr] 193 |                     k = node_id;
[INFO] [stderr]     |                     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `k` is assigned to, but never used
[INFO] [stderr]    --> src/node_graph.rs:213:66
[INFO] [stderr]     |
[INFO] [stderr] 213 |                 graph_response.buttons_response.insert_with_key(|mut k| {
[INFO] [stderr]     |                                                                  ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_k` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `k` is never read
[INFO] [stderr]    --> src/node_graph.rs:214:21
[INFO] [stderr]     |
[INFO] [stderr] 214 |                     k = id;
[INFO] [stderr]     |                     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/node_graph.rs:224:13
[INFO] [stderr]     |
[INFO] [stderr] 224 |         let mut node_pos=self.nodes[father_node_id].node_pos+pos2(300.0,0.0).to_vec2();//默认往右平移300，后面需要算法计算位置
[INFO] [stderr]     |             ----^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]    --> src/node_graph.rs:257:32
[INFO] [stderr]     |
[INFO] [stderr] 257 |     fn select_node(& mut self, node_id: NodeId) {
[INFO] [stderr]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]    --> src/node_graph.rs:260:30
[INFO] [stderr]     |
[INFO] [stderr] 260 |     fn edite_node(&mut self, node_id: NodeId) {
[INFO] [stderr]     |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]    --> src/node_graph.rs:263:31
[INFO] [stderr]     |
[INFO] [stderr] 263 |     fn delete_node(&mut self, node_id: NodeId) {
[INFO] [stderr]     |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/traits.rs:12:25
[INFO] [stderr]    |
[INFO] [stderr] 12 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,graph_state: &mut GraphState)-> GraphResponse{
[INFO] [stderr]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pan_zoom`
[INFO] [stderr]   --> src/traits.rs:12:37
[INFO] [stderr]    |
[INFO] [stderr] 12 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,graph_state: &mut GraphState)-> GraphResponse{
[INFO] [stderr]    |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `graph_state`
[INFO] [stderr]   --> src/traits.rs:12:60
[INFO] [stderr]    |
[INFO] [stderr] 12 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,graph_state: &mut GraphState)-> GraphResponse{
[INFO] [stderr]    |                                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_graph_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `father_node_id`
[INFO] [stderr]   --> src/traits.rs:15:45
[INFO] [stderr]    |
[INFO] [stderr] 15 |     fn add_node_with_father_node(&mut self, father_node_id:  NodeId)->NodeId{
[INFO] [stderr]    |                                             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_father_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pos2`
[INFO] [stderr]   --> src/traits.rs:18:42
[INFO] [stderr]    |
[INFO] [stderr] 18 |     fn add_node_with_position(&mut self, pos2: Pos2)-> NodeId{
[INFO] [stderr]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_pos2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]   --> src/traits.rs:21:30
[INFO] [stderr]    |
[INFO] [stderr] 21 |     fn select_node(&mut self,node_id:NodeId){}
[INFO] [stderr]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]   --> src/traits.rs:22:29
[INFO] [stderr]    |
[INFO] [stderr] 22 |     fn edite_node(&mut self,node_id:NodeId){}
[INFO] [stderr]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]   --> src/traits.rs:23:30
[INFO] [stderr]    |
[INFO] [stderr] 23 |     fn delete_node(&mut self,node_id:NodeId){}
[INFO] [stderr]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/traits.rs:28:25
[INFO] [stderr]    |
[INFO] [stderr] 28 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,node_state:&mut NodeState)->NodeResponse{
[INFO] [stderr]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pan_zoom`
[INFO] [stderr]   --> src/traits.rs:28:37
[INFO] [stderr]    |
[INFO] [stderr] 28 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,node_state:&mut NodeState)->NodeResponse{
[INFO] [stderr]    |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_state`
[INFO] [stderr]   --> src/traits.rs:28:60
[INFO] [stderr]    |
[INFO] [stderr] 28 |     fn draw(&mut self,  ui:&mut Ui ,pan_zoom: &mut PanZoom,node_state:&mut NodeState)->NodeResponse{
[INFO] [stderr]    |                                                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pan_zoom`
[INFO] [stderr]   --> src/traits.rs:32:35
[INFO] [stderr]    |
[INFO] [stderr] 32 |     fn ui(& mut self, ui: &mut Ui,pan_zoom: &mut PanZoom) ->Response{
[INFO] [stderr]    |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/traits.rs:37:32
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn draw_button(& mut self, ui: &mut Ui, pan_zoom: &mut PanZoom, button_state:&mut ButtonState)->ButtonResponse{
[INFO] [stderr]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pan_zoom`
[INFO] [stderr]   --> src/traits.rs:37:45
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn draw_button(& mut self, ui: &mut Ui, pan_zoom: &mut PanZoom, button_state:&mut ButtonState)->ButtonResponse{
[INFO] [stderr]    |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_zoom`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `button_state`
[INFO] [stderr]   --> src/traits.rs:37:69
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn draw_button(& mut self, ui: &mut Ui, pan_zoom: &mut PanZoom, button_state:&mut ButtonState)->ButtonResponse{
[INFO] [stderr]    |                                                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_button_state`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `k` is assigned to, but never used
[INFO] [stderr]   --> src/handlers.rs:60:57
[INFO] [stderr]    |
[INFO] [stderr] 60 |         graph_state.graph_button_state.insert_with_key(|mut k| {
[INFO] [stderr]    |                                                         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_k` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `k` is never read
[INFO] [stderr]   --> src/handlers.rs:61:13
[INFO] [stderr]    |
[INFO] [stderr] 61 |             k = new_node;
[INFO] [stderr]    |             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable `k` is assigned to, but never used
[INFO] [stderr]   --> src/handlers.rs:56:31
[INFO] [stderr]    |
[INFO] [stderr] 56 |             .insert_with_key(|mut k| {
[INFO] [stderr]    |                               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_k` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `k` is never read
[INFO] [stderr]   --> src/handlers.rs:57:13
[INFO] [stderr]    |
[INFO] [stderr] 57 |             k = new_node;
[INFO] [stderr]    |             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nodeid`
[INFO] [stderr]   --> src/handlers.rs:23:10
[INFO] [stderr]    |
[INFO] [stderr] 23 |     for (nodeid,response) in nodes_response{
[INFO] [stderr]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_nodeid`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]   --> src/handlers.rs:81:10
[INFO] [stderr]    |
[INFO] [stderr] 81 |     for (node_id, response) in buttons_response {
[INFO] [stderr]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `id`
[INFO] [stderr]   --> src/main.rs:33:75
[INFO] [stderr]    |
[INFO] [stderr] 33 | fn circle_interactable(ui: &mut egui::Ui, center: &mut Pos2, radius: f32, id: Id) -> Response {
[INFO] [stderr]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:92:13
[INFO] [stderr]    |
[INFO] [stderr] 92 |         let mut response = ui.interact(rect, id, egui::Sense::click_and_drag());
[INFO] [stderr]    |             ----^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pan_delta`
[INFO] [stderr]    --> src/main.rs:108:21
[INFO] [stderr]     |
[INFO] [stderr] 108 |                 let pan_delta = ui.ctx().input(|i| i.smooth_scroll_delta);
[INFO] [stderr]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pan_delta`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:134:24
[INFO] [stderr]     |
[INFO] [stderr] 134 |                    let mut node_id= self.node_graph.add_node_with_position(pos);
[INFO] [stderr]     |                        ----^^^^^^^
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:149:25
[INFO] [stderr]     |
[INFO] [stderr] 149 |                     let mut node_id=self.node_graph.add_node_with_father_node(id);
[INFO] [stderr]     |                         ----^^^^^^^
[INFO] [stderr]     |                         |
[INFO] [stderr]     |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `k` is assigned to, but never used
[INFO] [stderr]    --> src/main.rs:155:74
[INFO] [stderr]     |
[INFO] [stderr] 155 |                     self.graph_state.graph_button_state.insert_with_key(|mut k| {
[INFO] [stderr]     |                                                                          ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_k` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `k` is never read
[INFO] [stderr]    --> src/main.rs:156:25
[INFO] [stderr]     |
[INFO] [stderr] 156 |                         k = node_id;
[INFO] [stderr]     |                         ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `node_id` is never read
[INFO] [stderr]    --> src/main.rs:152:25
[INFO] [stderr]     |
[INFO] [stderr] 152 |                         node_id=node_id;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable `k` is assigned to, but never used
[INFO] [stderr]    --> src/main.rs:140:74
[INFO] [stderr]     |
[INFO] [stderr] 140 |                     self.graph_state.graph_button_state.insert_with_key(|mut k| {
[INFO] [stderr]     |                                                                          ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_k` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `k` is never read
[INFO] [stderr]    --> src/main.rs:141:25
[INFO] [stderr]     |
[INFO] [stderr] 141 |                         k = node_id;
[INFO] [stderr]     |                         ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `node_id` is never read
[INFO] [stderr]    --> src/main.rs:137:25
[INFO] [stderr]     |
[INFO] [stderr] 137 |                         node_id=node_id;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `central_response`
[INFO] [stderr]    --> src/main.rs:180:13
[INFO] [stderr]     |
[INFO] [stderr] 180 |         let central_response=CentralPanel::default().show(ctx, |ui| {
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_central_response`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:214:9
[INFO] [stderr]     |
[INFO] [stderr] 214 |     let mut myapp=MyApp::default();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: useless assignment of variable of type `node_graph::NodeId` to itself
[INFO] [stderr]    --> src/main.rs:137:25
[INFO] [stderr]     |
[INFO] [stderr] 137 |                         node_id=node_id;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: useless assignment of variable of type `node_graph::NodeId` to itself
[INFO] [stderr]    --> src/main.rs:152:25
[INFO] [stderr]     |
[INFO] [stderr] 152 |                         node_id=node_id;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `custom_button` is never used
[INFO] [stderr]   --> src/main.rs:15:4
[INFO] [stderr]    |
[INFO] [stderr] 15 | fn custom_button(ui: &mut Ui, text: &str) -> Response {
[INFO] [stderr]    |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `circle_interactable` is never used
[INFO] [stderr]   --> src/main.rs:33:4
[INFO] [stderr]    |
[INFO] [stderr] 33 | fn circle_interactable(ui: &mut egui::Ui, center: &mut Pos2, radius: f32, id: Id) -> Response {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `canvas`, `circle_center`, and `graph_response` are never read
[INFO] [stderr]   --> src/main.rs:64:5
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub struct MyApp{
[INFO] [stderr]    |            ----- fields in this struct
[INFO] [stderr] 64 |     canvas: Canvas,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 65 |     node_graph: NodeGraph,
[INFO] [stderr] 66 |     circle_center:Pos2,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     graph_response: GraphResponse,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `transform` is never read
[INFO] [stderr]   --> src/canvas.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct Canvas{
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] 12 |    pub transform: TSTransform,
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `InvisibleNode` and `VisibleNode` are never constructed
[INFO] [stderr]   --> src/node.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub enum NodeResponse{
[INFO] [stderr]    |          ------------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 28 |     InvisibleNode(NodeId),
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 29 |     VisibleNode(NodeId), 
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `NodeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `transform` is never read
[INFO] [stderr]   --> src/node.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub struct Node{
[INFO] [stderr]    |            ---- field in this struct
[INFO] [stderr] 40 |     pub node_id:NodeId,
[INFO] [stderr] 41 |     pub transform: TSTransform,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set_color` and `set_pos` are never used
[INFO] [stderr]   --> src/node.rs:71:12
[INFO] [stderr]    |
[INFO] [stderr] 69 | impl  Node{
[INFO] [stderr]    | ---------- methods in this implementation
[INFO] [stderr] 70 |     //设置节点颜色
[INFO] [stderr] 71 |     pub fn set_color(&mut self){
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 80 |     pub fn set_pos(&mut self,pos:Pos2){
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]  --> src/pan_zoom.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | impl PanZoom{
[INFO] [stderr]   | ------------ associated function in this implementation
[INFO] [stderr] 8 |     pub fn new() -> Self {
[INFO] [stderr]   |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `last_key` is never read
[INFO] [stderr]   --> src/node_graph.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct NodeGraph {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] 35 |     pub nodes: SlotMap<NodeId, Node>,
[INFO] [stderr] 36 |     pub last_key:Option<NodeId>
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `select_node`, `edite_node`, and `delete_node` are never used
[INFO] [stderr]   --> src/traits.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub trait NodeGraphs {
[INFO] [stderr]    |           ---------- methods in this trait
[INFO] [stderr] ...
[INFO] [stderr] 21 |     fn select_node(&mut self,node_id:NodeId){}
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 22 |     fn edite_node(&mut self,node_id:NodeId){}
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 23 |     fn delete_node(&mut self,node_id:NodeId){}
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `ui` is never used
[INFO] [stderr]   --> src/traits.rs:32:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub trait View {
[INFO] [stderr]    |           ---- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 32 |     fn ui(& mut self, ui: &mut Ui,pan_zoom: &mut PanZoom) ->Response{
[INFO] [stderr]    |        ^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:201:13
[INFO] [stderr]     |
[INFO] [stderr] 201 |             handle_graph_response(&mut self.node_graph,&mut self.graph_state,graph_response);//处理response
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 201 |             let _ = handle_graph_response(&mut self.node_graph,&mut self.graph_state,graph_response);//处理response
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `egui_app` (bin "egui_app" test) generated 84 warnings (run `cargo fix --bin "egui_app" -p egui_app --tests` to apply 55 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.40s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/egui_app-ed72501a400887cf)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ee51208f33df1f6922b622ec7b3d7aae246e961d3e7ea38b5f1f331f4d0ba3eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ee51208f33df1f6922b622ec7b3d7aae246e961d3e7ea38b5f1f331f4d0ba3eb", kill_on_drop: false }`
[INFO] [stdout] ee51208f33df1f6922b622ec7b3d7aae246e961d3e7ea38b5f1f331f4d0ba3eb
